package com.atguigu.lease.common.minio;

import io.minio.MinioClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/*
* todo：开启minioProperties支持 将MinioClint加入ioc容器
*
*
*
* */

@Configuration
@EnableConfigurationProperties(MinioProperties.class)
public class MinioConfiguration {

    @Autowired
    private MinioProperties properties;
/*
* todo  MinioClient.builder(): 这行代码调用了MinioClient类的builder()方法。
        .endpoint(properties.getEndpoint()):properties.getEndpoint()获取配置对象中获取端点URL的方法。
        .credentials(properties.getAccessKey(), properties.getSecretKey()): ，分别是访问密钥（access key）和秘密密钥（secret key）
        *这些密钥用于对Minio服务的请求进行身份验证。properties.getAccessKey()和properties.getSecretKey()应该是从配置对象中获取这些密钥的方法。
        .build():它会返回一个完全配置的MinioClient对象。此时，所有的配置都已经设置完成，可以开始使用这个客户端对象来与Minio服务进行交互了。
*
* */
    @Bean
    public MinioClient minioClient() {
        return MinioClient.builder()
                .endpoint(properties.getEndpoint())
                .credentials(properties.getAccessKey(), properties.getSecretKey())
                .build();
    }
}